//
//  main.m
//  Category1
//
//  Created by cora1n on 14-8-12.
//  Copyright (c) 2014年 devwu. All rights reserved.
//

#import <Foundation/Foundation.h>

//开闭原则

//对改变关闭,对扩展开放

#import "Person.h"

//类目语法
//分为类目的声明与实现两部分

//@interface 原有类的名称 (分类名称)
//.... 新增的方法声明
//@end

//@implementation 原有类名称 (分类名称)
//.... 新增的方法实现
//@end



@interface Person (Test)
-(void)show1;
@end

@implementation Person (Test)

-(void)show1
{
    NSLog(@"show1");
}

@end




//实践1. 通过类目,为数组添加新的方法
#import "NSArray+Test.h"
//需求. 为NSObject类添加一个sayHi方法
#import "NSObject+SayHi.h"


//类目的作用?
//1.为原有的类添加新方法
//2.分散类的实现,将不同的功能拆分到不同的类目中. 使用时选择需要的类目进行使用,可以提高编译效率
#import "Person.h"

//类目
//用于给原有的类添加新方法
//或者为现有的类拆分功能
//延展
//用于给现有的类添加私有成员


//协议
//指定一番规则,使得其他可以遵守
//中国人,韩国人,日本人... 三个人如何聊天?
//1.每人精通三门语言
//2.每人都会将英语




int main(int argc, const char * argv[])
{
    //需求,简化集合中存储 基本数据类型的操作
        //1.为数组添加一个直接存储 基本数据类型的方法
    NSArray * arr = [[NSArray alloc]initWithIntValue:3];
        //2.为数组添加一个直接获取 基本数据类型的方法
    NSLog(@"-----%d",[arr intValueAtIndex:0]);


    Person * p = [[Person alloc]init];
    [p publicMethod];
//    [p show1];

    return 0;
}

